package javase.CollectionAndMap.generic;

import java.util.Collections;
import java.util.List;

/**
 * 泛型接口
 * 1.[访问权限修饰符] interface 类名<任意大写字母>{    }
 * 2.<K,T,V>  允许写多个，代表未来使用时的任意引用数据类型
 * 3.例如：public interface Comparable<T> 接口 ，  public int compareTo(T o); 抽象方法
 * 4.程序具备拓展性
 * 5.使用场景：工具类 、 做规范的接口 、 集合 等
 */
public interface GenericDemo3<K> {

    //增
    boolean insert(K k);

    //改
    boolean update(K k);

    //查
    K selectOne(Integer id);
    List<K> selectAll();

    //删
    boolean delete(Integer id);

}
//数据交互层
class EmployeeDao implements GenericDemo3<Employee> {

    @Override
    public boolean insert(Employee employee) {
        return false;
    }

    @Override
    public boolean update(Employee employee) {
        return false;
    }

    @Override
    public Employee selectOne(Integer id) {
        return null;
    }

    @Override
    public List<Employee> selectAll() {
        return Collections.emptyList();
    }

    @Override
    public boolean delete(Integer id) {
        return false;
    }
}
class UserDao implements GenericDemo3<User> {

    @Override
    public boolean insert(User user) {
        return false;
    }

    @Override
    public boolean update(User user) {
        return false;
    }

    @Override
    public User selectOne(Integer id) {
        return null;
    }

    @Override
    public List<User> selectAll() {
        return Collections.emptyList();
    }

    @Override
    public boolean delete(Integer id) {
        return false;
    }
}
class Employee{

}
class User{

}
